package com.wande.dataplatform.domain.vo;

import cn.idev.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 数据查询历史视图对象
 *
 * @author wande
 */
@Data
public class QueryHistoryVO implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @ExcelProperty(value = "ID")
    private Long id;

    /**
     * 查询名称
     */
    @ExcelProperty(value = "查询名称")
    private String queryName;

    /**
     * 查询类型
     */
    @ExcelProperty(value = "查询类型")
    private String queryType;

    /**
     * SQL内容
     */
    @ExcelProperty(value = "SQL内容")
    private String sqlContent;

    /**
     * 查询配置JSON
     */
    private String queryConfig;

    /**
     * 数据源ID
     */
    @ExcelProperty(value = "数据源ID")
    private Long datasourceId;

    /**
     * 数据源名称
     */
    @ExcelProperty(value = "数据源名称")
    private String datasourceName;

    /**
     * 执行时间(毫秒)
     */
    @ExcelProperty(value = "执行时间(ms)")
    private Long executionTime;

    /**
     * 结果行数
     */
    @ExcelProperty(value = "结果行数")
    private Integer resultCount;

    /**
     * 状态
     */
    @ExcelProperty(value = "状态")
    private String status;

    /**
     * 错误信息
     */
    @ExcelProperty(value = "错误信息")
    private String errorMessage;

    /**
     * 项目ID
     */
    private Long projectId;

    /**
     * 创建者
     */
    @ExcelProperty(value = "创建者")
    private String createByName;

    /**
     * 创建时间
     */
    @ExcelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    private String remark;
}
